﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using Fantacid303.ProcessAffinityControl.Common;

namespace Fantacid303.ProcessAffinityControl.Config
{
	/// <summary>
	/// Represents a rule including a process name, affinty type and mask
	/// </summary>
	public class ConfigurationRule
	{
		/// <summary>
		/// Gets or sets the name of the process.
		/// </summary>
		/// <value>The name of the process.</value>
		[XmlAttribute]
		public string ProcessName
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the affinity mask used when the ProcessorAffinityType property is set to Custom
		/// </summary>
		/// <value>The affinity mask.</value>
		[XmlAttribute]
		public ulong AffinityMask
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the type of the processor affinity.
		/// </summary>
		/// <value>The type of the processor affinity.</value>
		[XmlAttribute]
		public ProcessorAffinityType ProcessorAffinityType
		{ get; set; }

	}
}
